﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ELab.Message
{
    public class MessageMouseEventArgs : EventArgs
    {
        // Summary:
        //     Gets which mouse button was pressed.
        //
        // Returns:
        //     One of the System.Windows.Forms.MouseButtons values.
        public MouseButtons Button { get; set; }
        //
        // Summary:
        //     Gets the number of times the mouse button was pressed and released.
        //
        // Returns:
        //     An System.Int32 that contains the number of times the mouse button was pressed
        //     and released.
        public int Clicks { get; set; }
        //
        // Summary:
        //     Gets a signed count of the number of detents the mouse wheel has rotated,
        //     multiplied by the WHEEL_DELTA constant. A detent is one notch of the mouse
        //     wheel.
        //
        // Returns:
        //     A signed count of the number of detents the mouse wheel has rotated, multiplied
        //     by the WHEEL_DELTA constant.
        public int Delta { get; set; }
        //
        // Summary:
        //     Gets the location of the mouse during the generating mouse event.
        //
        // Returns:
        //     A System.Drawing.Point that contains the x- and y- mouse coordinates, in
        //     pixels, relative to the upper-left corner of the form.

        private Point location = new Point(0, 0);
        public Point Location 
        {
            get
            {
                location.X = this.X;
                location.Y = this.Y;
                return location;
            }
        }
        //
        // Summary:
        //     Gets the x-coordinate of the mouse during the generating mouse event.
        //
        // Returns:
        //     The x-coordinate of the mouse, in pixels.
        public int X { get; set; }
        //
        // Summary:
        //     Gets the y-coordinate of the mouse during the generating mouse event.
        //
        // Returns:
        //     The y-coordinate of the mouse, in pixels.
        public int Y { get; set; }

        /// <summary>
        /// Mouse button status
        /// 0 - Mouse down, 1 - Mouse up
        /// </summary>
        public byte ButtonStatus { get; set; }

        /// <summary>
        /// Active screen X position
        /// </summary>
        public int ScreenX { get; set; }

        /// <summary>
        /// Active screen Y position
        /// </summary>
        public int ScreenY { get; set; }

        /// <summary>
        /// Active screen Width position
        /// </summary>
        public int ScreenWidth { get; set; }

        /// <summary>
        /// Active screen Height position
        /// </summary>
        public int ScreenHeight { get; set; }
    }
}
